[アップデート]CloudFormation が Aurora Global Database に対応しました
こんにちは、崔です。
CloudFormation が Amazon Aurora Global Database に対応したので、やってみました。
Amazon Aurora Global Database Expands Manageability Capabilities
CloudFormation のドキュメントはこちら。GlobalClusterというリソースが追加されてます。
AWS::RDS::GlobalCluster - AWS CloudFormation
やってみた
東京リージョンにあるクラスターをグローバルデータベース化していきます。
まず、最初の状態はこちらです。
CloudFormation でグローバルデータベース化します。
AWSTemplateFormatVersion: 2010-09-09 Parameters: GlobalClusterIdentifier: Type: String Description: Identifier used for global database cluster AllowedPattern: '^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$' RDSCluster: Type: String Description: Identifier used for DB cluster AllowedPattern: '^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$' Resources: GlobalCluster: Type: 'AWS::RDS::GlobalCluster' Properties: GlobalClusterIdentifier: !Ref GlobalClusterIdentifier SourceDBClusterIdentifier: !Ref RDSCluster
新規作成する Global Database 名と、既存のクラスター名をパラメータに入力します。
これで、既存クラスターが、 Global Database に取り込まれました。
次に、ソウルリージョンで CloudFormation を実行して、セカンダリークラスターを追加します。
AWSTemplateFormatVersion: 2010-09-09 Parameters: GlobalClusterIdentifier: Type: String Description: Identifier used for global database cluster AllowedPattern: '^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$' RDSClusterIdentifier: Type: String Description: Identifier used for DB cluster AllowedPattern: '^[a-zA-Z]{1}(?:-?[a-zA-Z0-9]){0,62}$' Resources: RDSCluster: Type: 'AWS::RDS::DBCluster' Properties: GlobalClusterIdentifier: !Ref GlobalClusterIdentifier DBClusterIdentifier: !Ref RDSClusterIdentifier Engine: aurora-mysql EngineVersion: 5.7.mysql_aurora.2.07.2 DBClusterParameterGroupName: test-cluster-parameter-group DBSubnetGroupName: db-test-subnet VpcSecurityGroupIds: - 'sg-xxxxxxxxxxxxxxxxx'
先程、作成した Global Database 名と追加するセカンダリークラスター名をパラメータに入力します。
無事に、セカンダリークラスターが追加されました。
もちろん、CloudFormation のテンプレートに、AWS::RDS::DBInstance リソースを記載していれば、セカンダリークラスター下にインスタンスも同時に作成されます。
今までは、マネコンや CLI でしか作成できなかったので、CloudFormation で作成できるようになったのは、地味に嬉しいです!
参考
Aurora Global Databaseをセカンダリークラスターにインスタンスを立てずに作成してみた | Developers.IO